The present exemplary embodiments are directed to methods for image segmentation to produce a mixed raster content (“MRC”) image with multiple extracted constant color areas (“MECCA”). MRC modeling is a powerful image representation concept in achieving high compression ratios while maintaining high constructed image quality. MECCA modeling has the further advantages of relatively undemanding decomposition requirements and inherent text enhancement and noise reduction features. The MECCA model contains one background layer, N foreground layers, and N mask layers where N is a non-negative integer. While the background layer can be a contone bitmap, the foreground layers are restricted to constant colors. U.S. Ser. No. 10/866,850 entitled “Method for Image Segmentation to Identify Regions with Constant Foreground Color”, filed Jun. 14, 2003 hereby incorporated by reference in its entirety, details a relevant MECCA modeling method.
The segmenting of the data into either background or foreground text is important because different compression algorithms are much more efficient for different kinds of images. For example, JPEG is a more efficient compression algorithm for pictures while other algorithms are especially designed for binary images like text. Using different compression algorithms for different portions of the scanned image data provides the advantage of a high compression ratio for the data with high quality image reconstruction.
To generate MRC/MECCA representation for an image, segmentation is required. The segmentation algorithm generally consists of four steps, namely object extraction, object selection, color clustering, and result generation. In the first step, text and other objects are extracted from the image. Next, the objects are tested for color constancy and other features to decide if they should be represented in the foreground layers. The objects that are chosen are then clustered in color space as the third step. The image is finally segmented such that each foreground layer codes the objects from the same color cluster.
When the object candidates for foreground layers are first extracted, the clustering is performed to determine how many foreground layers are needed and how each object should be represented therein. There are currently two kinds of color clustering approaches for object representation: pixel based and object based. In the pixel based approach, clustering analysis is performed on pixel colors. As the objects are usually very noisy, the neighboring pixels within one object may often be grouped into different clusters and represented in different foreground layers. This results in very low coding efficiency. The object based approach is currently more prevalent and the clustering is performed on objects instead of pixels. This ensures grouping consistency within an object. Consequently, much higher coding efficiency can be achieved. However, the object based approach requires the object to be constant (at least visually) in color. A color uniformity check is thus required before the clustering. The non-uniform color objects are discarded as foreground candidates and need to be coded in the background later. If a non-uniform color object happens to contain detailed information (e.g. thin characters touching each other), it will result in a coding of either a low quality or a large file size.
With reference to FIG. 1, the particular problems sought to be overcome by the present embodiments are conveniently illustrated. The Figure illustrates an exemplar of a scanned document having portions where black text characters are crowded with differently colored ink markings, i.e., different colors are touching. The Figure shows normal print text characters along with hand-written ink markings. Assume red markings on the black text at the area generally shown by numeral 24 and blue-on-black at area 26. In such cases, and keeping mind that normal text characters are hoped to be coded as a single object, these alphanumeric character objects combining two markings of different color could be identified initially as one object of a non-uniform color. In accordance with the object based clustering approach above, such a character would have to be coded in the background layer, not a foreground layer segment. Since such background layers are usually compressed with JPEG, the compression efficiency for multicolor touching of characters would be very poor.
Alternatively, if a priority were set on good compression, storage would be based on separating the touching characters. Unfortunately, such a segmentation for touching or overlapping markings process is very expensive in processing costs because identifying the exact boundary between touching parts is very difficult to do.
Accordingly, there is a need for a processing method which is more efficient in processing touching characters and can achieve good compression for storage of character blocks of multiple colors.